Online-Academy
Look, Read, Understand, Apply

Data Structure

Sortings Quick Insertion Selection

class Sorting{
    public int Partition(int[] arr,int low,int high){
        int i, pivotloc,pivotkey;
        //swap(arr,low,(low+high)/2);
        pivotkey = arr[low];
        pivotloc = low;
        for(i=low+1;i<=high;i++){
            if(arr[i]<pivotkey){
                swap(arr,++pivotloc,i);
            }
        }
        swap(arr,low,pivotloc);
        return pivotloc;
    }
    void QuickSort(int [] arr,int low,int high){
        int pivotloc;
        if(low< high){
            pivotloc = Partition(arr,low,high);
            QuickSort(arr,low,pivotloc-1);
            QuickSort(arr,pivotloc+1,high);
        }
    }
    public void insertionSort(int[] arr1){
        int[] arr = arr1;
        int i,j,item;
        for(i=1;i<arr.length;i++){
            item = arr[i];
            for(j=i-1;j>=0 && arr[j]>item;j--){
                arr[j+1] = arr[j];
            }
            arr[j+1] = item;
        }
        //return arr;
    }
    public void selectionSort(int[] arr1){
        int[] arr = arr1;
        int i,largest,n;
        n = arr.length;
        for(i=0;i<n;i++){
            largest = find_largest(arr,n-(i));
            System.out.print("\nLargest: "+largest);
            swap(arr,largest,n-(i+1));
        }
    }
    public int find_largest(int[] arr, int high){
        int i,max = arr[0],indx=0;
        for(i=1;i<high;i++){
            if(arr[i]>max){
                max = arr[i];
                indx = i;
            }
        }
        return indx; 
    }
    public void swap(int[] arr,int i,int j){
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
}

class sorting_demo{
    public static void display_arr(int[] arr){
        for(int i=0;i<arr.length;i++){
            System.out.print(" "+arr[i]);
        }
    }
    public static void main(String[] op){
        int[] arr = {300,3,4,5,1,-99,19,12,333,22};
        Sorting s = new Sorting();
        System.out.print("InsertionSort");
        s.insertionSort(arr);
        display_arr(arr);
        int[] arr1 = {3,4,5,1,23,33,19,10};
        System.out.print("\nSelectionSort");
        display_arr(arr1);
        s.selectionSort(arr1);
        display_arr(arr1);
        System.out.println("\nQuickSort: ");
        int[] arr2 = {26,26,33,48,27,38,35,29,19,12,22};
        Sorting qs = new Sorting();
        qs.QuickSort(arr2,0,arr2.length-1);
        display_arr(arr2);
    }
    
}